#ifndef _CTESTAPPLICATION_H_
#define _CTESTAPPLICATION_H_

#include <NiEntity.h>
#include <NiTerrainLib.h>
#include <NiMesh.h>

class CTestApplication : public NiApplication
{
public:
	NiApplication*	Create();

	CTestApplication();
	virtual ~CTestApplication();

	virtual bool CreateScene();
	virtual bool CreateRenderer();
	virtual bool CreateFrame();
//	virtual bool CreateUIElements();
	virtual bool Initialize();

	virtual void UpdateFrame();
	virtual void EndUpdate();
	virtual void Terminate();

	NiCamera*	GetMainCamera()	{	return m_spMainCamera; }
	

protected:
	

	NiDefaultErrorHandlerPtr	m_spErrors;
	NiExternalAssetManagerPtr	m_spAssetManager;
	NiScenePtr					m_spEntityScene;

	NiCameraPtr					m_spMainCamera;

	NiMeshPtr					m_spSkyDome;
	NiCameraPtr					m_spSkyDomeCamera;

	NiMeshUpdateProcessPtr		m_spUpdateProcess;
	NiSceneRenderView*			m_pkSceneView;

	NiVisibleArray				m_kVisibleSet;
	
	NiCamera*					m_pkCamera;
	CTestCamera*				m_pTestCamera;

	
};

extern CTestApplication*	GetFrameWork();
#endif